<!DOCTYPE html>
<html>
<head> 
	<title></title>
</head>
<body>

<!-- 
	基本数据类型是一个具体的值。值与值之间没有任何联系。
基本数据类型和引用数据类型的区别：
	存放的区别
	深拷贝和浅拷贝的区别

关于堆内存和栈内存	
	基本数据类型和引用数据类型的区别
	基本存放在栈，引用存放在堆

	js是保存在栈内存中的，基本数据类型也是保存在栈中，栈中值与值之间独立存在，修改一个变量的值，其他的值不会受到影响。

	对象是保存到堆中，创建一个新对象，在堆中就会有一个新空间放对象，栈中的变量对应的值是对象的内存地址（对象的引用）
	如果一个对象保存的是另一个对象的引用(obj2 = obj)当通过变量修改属性的时候，另一个对象会跟着改变。

	当基本数据类型进行对比时，比较的是值，只要值相等就是想等的。
	引用数据类型进行比较的堆内存地址，即使对象的属性和属性值完全一样，如果它们的内存地址不同，比较的结果就会是false。如果内存地址相等，结果是true。

栈内存和堆内存区别：
	栈内存是存放变量和基本数据类型，对象的内存地址
	基本数据类型用完就没了，引用数据类型不会立刻销毁。


深拷贝和浅拷贝
	深拷贝：当一个对象保存的是另一个对象的引用时，对新的对象进行改变属性，原对象不改变。
	浅拷贝：一个对象复制另一个对象，当改变新对象属性，原对象属性也被改变


	用对象字面量创建，给对象添加属性同样可以
	-语法：对象.属性=属性值
	-可以创建是直接添加
	var obj1={属性：属性值,属性1：属性值,属性2：属性值2}
	直接添加属性和属性值，不同属性之间是通过逗号来隔开，最后一个属性后面不用加逗号。
	注意！：如果属性是特殊字体或符号，必须用引号括起来，输出是不能直接输出
	错误输出(obj.'特殊字体/符号');
	正确的(obj[特殊字体/符号]);

	查看对象中是否有这个属性，
	语法：'属性' in 对象  ！！注意引号
		返回true则说明对象中有这个属性，false则相反
	如：检查obj中是否有age属性
	console.log('age' in obj);

具体见张大仙语录
	for in 遍历对象
	语法：for(x in 对象){对象[x]}
	输出写


//见三元运算符(有些缺少)
	单目，双目，三目
	单目  一个变量自增或自减
	双目  两个变量进行运算+-*/%
	三目  下面三元 运算符也叫条件运算符
	条件运算符 三元运算符

	对象：
		1.内置对象
		-在ES(ECMAscript)标准中定义的对象，在任何js实现中都可以使用
		-Number(),string,Math，Boolean
		2.宿主对象/浏览器对象
		-由js运行环境提供的对象，目前只浏览器提供的对象 
		-DOM BOM，document.write()alert();
		3.自定义对象
		-由开发人员自己创建

对象定义，对象哪个是复合型的数据类型，在对象中可以保存多个不同数据类型的属性。
对象是有属性和方法的数据。
	document.write()
	document是对象，write是document的属性，
	document.write()就是document对象的方法。
如何创建对象：
	new创建对象,想创建对象是通过new操作符new Object();创建出来的对象字面量{}
	new Object()
	使用new关键字调用的函数叫构造函数，构造函数constructor//啃死它科特//                
	构造函数是专门用来创建的函数
	使用typeof查看数据类型返回结果是object

	创建对象方法2
	-1.构造函数创建 newObject()
	-2.对象字面量创建 var obj = {}
自己加上的但能用：具体见7
	-3.var obj={
	属性：属性值,<——注意这个逗号
	};
	
	对象的操作： 
	-1.给对象添加属性
	 语法：对象.属性 = 属性值;
	-2.修改对象属性
	 语法：对象.属性 = 新的属性值;
	-3.删除对象属性
	 语法：delete 对象.属性

 -->
</body>
<script type="text/javascript">
//基本数据类型都是一个具体的值。
//引用数据类型
	//语法：对象.属性 = 属性值；
// 	var girlfriend = new Object()
// 		girlfriend.name = '邢宇星';
// 		girlfriend.height = 167+"cm";
// 		girlfriend.weight = 60+'kg';
// 		console.log(girlfriend);
// 		document.write(girlfriend);


// 	var maxiaofan = {};
// 	maxiaofan.name = '马晓凡';
// 	maxiaofan.home = '石家庄';
// 	maxiaofan.height = 1.7+'m';
// 	maxiaofan.face = "平凡";
// // 想要更改属性在后面直接覆盖	
// 	maxiaofan.name = '邢于鑫';
// 	maxiaofan.home = '唐山';
// //删除对象属性
// 	delete maxiaofan.home;

// 	console.log(maxiaofan);
// 	document.write('张云龙的女朋友'+'名字'+maxiaofan.name+'住所'+maxiaofan.home+"身高"+maxiaofan.height+"相貌"+maxiaofan.face);
// 	document.write('<br>');
	
	// var zhangdenvyou = {}
	// 	zhangdenvyou.name = '邢于鑫';
	// 	zhangdenvyou.age = '18';
	// console.log(zhangdenvyou);
	// var zhang = new Object();
	// zhang.name = '院校园';
	// zhang.age = '20';
	// console.log(zhang);
//对这个叫见7
	// var zhangyunlong = {
	// 	hougongrenshu:3000,
	// 	pingjunname:22,
	// 	gerenaihao:'yujie,luoli,shunv'
	// } ;
	// console.log(zhangyunlong)


//三种的使用方法顺序如下：
// var obj = new Object()
// 	obj.name = 'obj';
// 	obj.age = 1998;
// 	console.log(obj);

// var arr = {}
// 	arr.name = 'array';
// 	arr.age = 78;
// 	console.log(arr);

// var ace = {
// 	name:'wjkl',
// 	age:98
// };
// console.log(ace);

// var computer = {
// 	date:'2017 09 19',
// 	name:"联想",
// 	color:"精致灰"
// }
// console.log(computer);

//这个叫题三元运算符
//变量=(条件)?返回true的结果:返回false结果
var a = 55;
a=(a>=60)?console.log('及格'):console.log('不及格');

//张大仙语录
	var obj1 = {
		name:'张云龙',
		age:18,
		height:"183cm",
		sayName:{size:80},
		home:'唐山',
		belive:"生在光明之中，把黑暗当做全部"
	}
	var x;
	for (x in obj1) {
		console.log(obj1[x]);
	}
</script>
</html>